package com.xyy.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xyy.entity.PushLike;
import org.apache.ibatis.annotations.Mapper;

/**
 * 推文点赞Mapper接口
 * 使用MyBatis-Plus的BaseMapper，提供基础的CRUD操作
 * 
 * @author xyy
 * @since 2024-01-01
 */
@Mapper
public interface PushLikeMapper extends BaseMapper<PushLike> {
    
    // 继承BaseMapper后，自动拥有以下方法：
    // insert(T entity) - 插入一条记录
    // deleteById(Serializable id) - 根据ID删除
    // updateById(T entity) - 根据ID更新
    // selectById(Serializable id) - 根据ID查询
    // selectList(Wrapper<T> queryWrapper) - 根据条件查询列表
    // selectPage(IPage<T> page, Wrapper<T> queryWrapper) - 分页查询
    // selectCount(Wrapper<T> queryWrapper) - 根据条件查询总数
    
    // 如果需要复杂的查询，可以在Service层使用LambdaQueryWrapper构建查询条件
    // 例如：查询用户是否点赞了某个推文
    // LambdaQueryWrapper<PushLike> wrapper = Wrappers.lambdaQueryWrapper();
    // wrapper.eq(PushLike::getPushId, pushId);
    // wrapper.eq(PushLike::getUserId, userId);
    // wrapper.isNull(PushLike::getDeletedAt);
    // PushLike like = selectOne(wrapper);
    
    // 例如：统计推文的点赞数量
    // LambdaQueryWrapper<PushLike> wrapper = Wrappers.lambdaQueryWrapper();
    // wrapper.eq(PushLike::getPushId, pushId);
    // wrapper.isNull(PushLike::getDeletedAt);
    // Long count = selectCount(wrapper);
}
